package com.dd.ms.auth.utils.redis;

import com.dd.ms.common.pojo.annotation.Explanation;

/**
 * @Author liuxianmeng
 * @CreateTime 2025/7/29 18:24
 * @Description 类功能作用说明
 */
public class RedisKeyUtil {

    @Explanation("Redis键组成分隔符")
    public static String SEPARATOR = ":";

    /********************* 用户信息相关键 *********************/
    @Explanation("全量用户信息（包含全量权限信息）Redis键")
    public static String USER_INFO_FULL = "USER_INFO:FULL";
    @Explanation("主要用户信息（不包含权限信息）Redis键")
    public static String USER_INFO_PROFILE = "USER_INFO:PROFILE";
    @Explanation("用户apiKey Redis键")
    public static String USER_APIKEY = "USER_APIKEY";

    /**
     * 根据用户账号获取用户全量用户信息（包含全量权限信息）KEY
     *
     * @param userAccount
     * @return
     */
    public static String getUserInfoFullKey(String userAccount) {
        return USER_INFO_FULL + SEPARATOR + userAccount;
    }

    /**
     * 根据用户账号获取用户主要用户信息（不包含权限信息）KEY
     *
     * @param userAccount
     * @return
     */
    public static String getUserInfoProfileKey(String userAccount) {
        return USER_INFO_PROFILE + SEPARATOR + userAccount;
    }

    /**
     * 根据用户账号获取用户apiKey 的RedisKey
     *
     * @param userAccount
     * @return
     */
    public static String getUserApiKeyRedisKey(String userAccount) {
        return USER_APIKEY + SEPARATOR + userAccount;
    }
}
